<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>ES6-IN-DEPTH</title>
</head>

<body>
    <nav>
    </nav>
    <div class="mian">
        <section>
            <h6>迭代器和 for-of 循环 </h6>
            <code>
      for(var index = 0;index < myArray.length;index++){
        console.log(myArray[index]);
      }
    </code>
            <p></p>
            ES5
            <code>
      myArray.forEach(function(value){
        console.log(value);
      });
    </code>
            <p>
                不能使用 return 和 break ；
            </p>
            <code>
      for(var index in myArray){
        console.log(myArray[index]);
      }
    </code>
            <p>
                index 实际是字符串 ，会遍历自定义属性 ，有可能随机顺序遍历数组元素，适合普通对象使用。
            </p>
            ES6
            <code>
    for(var index of myArray){
      console.log(myArray[index]);
    }
    </code>
            <p>
                避开 for-in 缺陷，响应break 、continue 和return；
            </p>
            <p>
              支持 数组 、字符串、Map 和 Set 遍历；
            </p>
            <code>
              for(var [key,value] of Map){
                console.log(key + ' it ' +value);
              }
            </code>
            <p>
              for-of 不支持普通对象，可以用Object.keys()或for-in；
            </p>
        </section>


    </div>

    <p>
      <input type='button' id="else" value="add">
    </p>
    <script type="text/javascript">
      
      function* add(name){
        yield 'nihao' + name + '~';
        yield '--------------';
        if(name.indexOf('1') ==3){
          yield 'coll';
        }
        yield '886';
      }

      document.querySelector('#else').click = function(){
        var a = add('join');
      };
    </script>
</body>

</html>
